package cn.car.service;

import cn.car.domains.bo.QueryRoleBo;
import cn.car.domains.entity.SysRoleEntity;
import java.util.List;

public interface SysRoleService {
    /**
     * 新增角色
     * @param role 角色实体
     * @return 新增成功的角色ID
     */
    Long addRole(SysRoleEntity role);

    /**
     * 根据ID查询角色
     * @param id 角色ID
     * @return 角色实体
     */
    SysRoleEntity getRoleById(Long id);

    /**
     * 根据角色编码查询角色
     * @param roleCode 角色编码
     * @return 角色实体
     */
    SysRoleEntity getRoleByCode(String roleCode);

    /**
     * 更新角色
     * @param role 角色实体（必须包含ID）
     */
    void updateRole(SysRoleEntity role);

    /**
     * 根据ID删除角色
     * @param id 角色ID
     */
    void deleteRole(Long id);

    /**
     * 查询角色列表
     */
    List<SysRoleEntity> list(QueryRoleBo query);
}

